iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
Mobile Development

上班到一半突然被通知被炒了的我只好來寫個賓果系列 第 13

Day13 阿數字都一樣賓果是要怎麼玩

  • 分享至 

  • xImage
  •  

上期把數字的範圍定出來了,這次要來判斷數字是否有重複。
首先先去BingoButton設置儲存按鈕內數字
https://ithelp.ithome.com.tw/upload/images/20220911/20140063X0eO7JxMgg.png

public void saveNumber(int iNumber){
   m_NumberSave = iNumber;
}

public int getNumber(){
   return m_NumberSave;
}

在判斷是否重複的時候,會用一個for迴圈,讓被點擊按鈕得到的這個數字去跟所有button的數字去比較,如果重複,就印一個dialog去告訴使用者輸入的數字重複了。
沒有重複的話就把數字存進這個按鈕裡,以及把數字印到按鈕上面。

再來就來設定按鈕吧,這邊設定只要有數字重複就直接跳出迴圈,畢竟已經確定有數字重複就沒有在判斷下去的必要了。
沒有重複的話,可以透過m_iNowIndex知道現在要設定的是哪個按鈕
最後在印數進按鈕的時候裏面用了正則(replaceAll("^(0+)", "")) ,透過這種方式就可以讓01、02、03…等數字變成1、2、3…這樣按鈕裡就不會出現01跟1同時存在的尷尬場景了
https://ithelp.ithome.com.tw/upload/images/20220911/20140063IrPCgVEzFa.png

private void checkInputNumberRepeat() {
   boolean bCheck = true;
   for (int i = 0; i < m_iSize * m_iSize; i++) {
       //判斷是否重複
       if (Integer.parseInt(m_binding.etInput.getText().toString()) == m_alBingoButtons.get(i).getNumber()) {
           showDialogRepeatNumber();
           bCheck = false;
           break;
       }
   }
   if (bCheck == true) {
       BingoButton bingoButton = m_alBingoButtons.get(m_iNowIndex);
       String strEtText = m_binding.etInput.getText().toString();
       bingoButton.getButton().setText(strEtText.replaceAll("^(0+)", ""));
       bingoButton.saveNumber(Integer.parseInt(strEtText.replaceAll("^(0+)", "")));
   }
}

做完記得要放回checkInputNumber

private void checkInputNumber() {
   String strBingoNumber = m_binding.etInput.getText().toString();
   if (m_binding.etInput.getText().toString().equals("")) {
   } else if(Integer.parseInt(strBingoNumber)>m_iSize*10||Integer.parseInt(strBingoNumber)<1){
       showDialogOverRange();
   }else{
       checkInputNumberRepeat();
   }
}

這樣就完成數字是否重複的判斷啦~等後面亂數按鈕用好之後也可以再測試看看數字會不會重複。


上一篇
Day12 給個數字範圍呀 不要像另一半一樣難以捉摸範圍
下一篇
Day14 在dailog裡印 R.string 的字串 但印出來的只是一串數字時該怎麼辦
系列文
上班到一半突然被通知被炒了的我只好來寫個賓果30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言